|技术资源门户第一站|
入住:用户 密码


首  页 | 新闻动态 | 网页设计 | 图形图像 | 网络编程 | 电脑技术 | 资源下载 | 专题集锦 | 酷站展示 | 图库素材 | 原创投稿
论  坛 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定 | 栏目待定
热 门 文 章
·(下)用Photoshop“组装”一只标
·微软宣布SQLServer2005功能及售价
·HTML简明手册 — 第十一章 脚本语
·四川风讯科技发展有限公司首届模
·完美之作:茶·咖啡·果汁
·HTML简明手册 — 第九章 样式
·腾讯宣布收购Foxmail
·下拉菜单全攻略之Dreamweaver篇
·ASP初学者常犯的几个错误
·Dreamweaver MX 2004 入门教程之
推 荐文 章
·【PS特训营】(1)《快速纹理》
·最新的技术-XSS(五)
·最新的技术-XSS(四)
·最新的技术-XSS(三)
·最新的技术-XSS(二)
·最新的技术-XSS(一)
·多媒体标记Shvatz 前景
·进入SMIL
·SMIL:多媒体标记
·XML未来的设计:未来的结构
栏目精华
相 关 文 章
  最新更新:  
 
全能搜索:
  开始时间  结束时间 
 
 您现在的位置:首页>网络编程>ASP>新闻
ASP编程入门进阶(十一):Chat 聊天程序
日期:2005-3-4 15:05:42     来源:网讯   编辑:本站 
通常的聊天室所采用的程序,也就是Chat程序了,其基本结构原理是不会采用到数据库的。那究竟采用什么技术呢?我们知道ASP变量当中Session变量的作用是记录单个用户的信息,并且能跟踪用户的行为。

  Application对象的作用则起的全局变量,可以实现站点多个用户之间在页面中共享信息的。

  那可以想象,在针对当前聊天程序中,一个聊天成员即为一个Session变量,聊天成员之间的会话则当成Application变量进行共享显示,以使各成员都能看见。

  那下面就采用一很经典的实例程序,进行了解和分析。

  1,chat.asp


<%If Request.ServerVariables("Request_Method")="GET" then%>
<form method="post" action="chat.asp">
<input type="text" name="nick" value="your nick name"><p>
<input type="submit" value="come in"><p>
<input type="hidden" name="log" size="20" value="1">
</form>
<%Response.End
Else
Response.clear
dim talk
If Request.Form("nick")<>"" then
Session("nick")=Request.Form("nick")
End if
%>

<form method="post" action="chat.asp" name=form1>
<%=Session("nick")%>说话:
<input type="text" name="talk" size="50"><br>
<input type="submit" value="提交">
<input type="reset" value="取消"></p>
</form>
<a href="chat.asp">离开</a><br>

<%
If Request.Form("log")<>1 then
If trim(Request.Form("talk"))="" then
talk=Session("nick")&"不说一句话就想来敷衍大家"
Else
talk=trim(Request.Form("talk"))
End If
Application.lock
Application("show")="来自"&Request.ServerVariables("remote_addr")& "的_
" &Session("nick")&"在"&time& "的时候说:" &talk& "<br>" &Application("show")
Application.UnLock
Response.Write Application("show")
End if
%>


  简单解释:
  1,<%If Request.ServerVariables("Request_Method")="GET" then%>的作用就是判断当前页面接受的方式,如果为GET方式则会显示“要求输入昵称”的表单页。因为页面的默然接受方式为GET,当在URL地址栏直接敲入时,也就是没有任何信息的时候,就应该显示要求“输入昵称”。

  2,<input type="hidden" name="log" size="20" value="1">和下面的If Request.Form("log")<>1 then是有关联的:显然第一次输入昵称进入,同样将log隐藏域发送。但作为第一次的进入是无任何语句发言的,所以判断接受的log值不为1,亦即非首次登录(表示已经登录)时,执行内部相关聊天显示程序。

  3,trim(Request.Form("talk"))="",trim就是个函数了:删去字符串前,后的空格。初此,还有rtrim():去掉字符串后的空格;ltrim():去掉字符串前的空格。


<script language=vbs>
cnbruce=" This is a Test ! "
alert("全部显示:"&cnbruce)
alert("删除前面空格:"<rim(cnbruce))
alert("删除后面空格:"&rtrim(cnbruce))
alert("删除前后空格:"&trim(cnbruce))
</script>


Application.lock
Application("show")="来自"&Request.ServerVariables("remote_addr")& "的_
" &Session("nick")&"在"&time& "的时候说:" &talk& "<br>" &Application("show")
Application.UnLock

  提取精华得:

Application.lock
Application("show")=talk& "<br>" &Application("show")
Application.UnLock

  可以看到是Application变量的叠加功能,每次Application("show")的值都建立在原有Application变量值的基础之上,再附加上最新的聊天内容:talk变量的值。这样就保证所有用户都能看到的共享信息了。


特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
责任编辑:本站 原始作者:
信息来源:网讯 录入时间:2005-3-4 15:05:42
浏览次数: 投稿信箱: Wooxun#126.com

  → 发表我的评论      → 查看评论(点击查看)
版权所有 2005-2006©www.woxun.com  维护QQ:8216238
设计版本:网讯中国 2005 VOL.1 程序核心:风讯2.0